[HOME PAGE] [VOLTAR] [LINKS IA]


LINGUAGENS PARA INTELIGÊNCIA ARTIFICIAL

A maioria dos sistemas de inteligência artificial se caracterizam por não seguir algoritmos bem definidos como nos sistemas clássicos, por isso existem linguagens específicas para IA, tais linguagens utilizam principalmente paradigmas de programação lógica e programação funcional.

De acordo com Robert I. Levine para que um programa seja considerado de IA é necessário que: "Todos os elementos  nos quais o processo de tomada de decisão - objetivos, fatos, regras, mecanismos de inferência e poda - devem ser reunidos em um programa de computador para que ele possa ser realmente qualificado como um programa que possui inteligência artificial" [LEVINE, 88].

Existem várias linguagens para a construção de programas de IA. A primeira linguagem para IA surgiu em 1955, com estudos realizados por Newell, Shaw e Simon, denominada de IPL-11. Em seguida surgiu a linguagem LISP (LISts Processing), estruturada por John McCarthy (em 1958), a qual passou a ser amplamente utilizada  juntamente com a lógica matemática e as funções recursivas.

O desenvolvimento do Lisp acadêmico propiciou o surgimento de vários dialetos do LISP: LOOPS, Scheme Lisp, S1 Lisp, PSL, Mac Lisp, InterLisp, etc. Atualmente a versão Common Lisp é utilizada como padrão.

Outra linguagem utilizada em programas de inteligência artificial é o PROLOG (PROgramming in LOGic). O PROLOG foi estruturado nos anos 70 com o intuito de resolver problemas por meio da utilização de sentenças lógicas. A idéia de utilizar o formalismo da lógica para construir programas foi pesquisada principalmente por R. A. Kowalski que forneceu sua base teórica.

Tivemos o desenvolvimento do primeiro interpretador PROLOG, em 1973, pela equipe do GIA (Grupo de Inteligência Artificial) de Colmerauer da Universidade de Marselha.
 
O primeiro compilador Prolog surgiu em 1982 com a equipe de David Warren na Universidade de Edinburgh. E em 1992, teve início a definição de uma norma ISO para Prolog e o desenvolvimento de vários ambientes: Prolog de Marselha, LPA Prolog e DELPHI Prolog, etc.

Gerações de Linguagens de Programação:
 

1ª Geração

1951 -1959

Linguagem de máquina. Também denominada de linguagem de baixo nível composta por seqüências binárias (zero e um).
2ª Geração

1959 -1965

Linguagem ASSEMBLER (passa a dar nomes às
seqüências de zero e um)
 
 
3ª Geração
1965 -1974
Linguagem de alto nível e circuitos integrados.  
A 1ª  foi criada pela IBM, no final da década de 50, denominada de FORTAN (formula translation),
seguida do COBOL, LISP e PROLOG. Essa fase representou uma mudança significativa nas
linguagens de programação.
4ª Geração

1974 -1985

Linguagens não procedurais e miniaturização de
circuitos integrados. Linguagem de bancos de
dados 
5ª Geração

Após 1985 

Utilizada em banco de dados distribuídos
 

INTELIGÊNCIA ARTIFICIAL DISTRIBUÍDA

 

ball1.gif (334 bytes) Noções Gerais  

A Inteligência Artificial Distribuída (IAD) trabalha com vários sistemas ao mesmo tempo que se comunicam entre si e dividem tarefas. Cada sistema pode assumir uma função específica e todo o sistema torna-se responsável pelo gerenciamento das interações para alcançar um objetivo comum.

Os sistemas de IAD permitem com que vários processos autônomos (agentes) sejam representados em um só sistema (que coordena) o conhecimento de vários especialistas, possibilitando a resolução de problemas complexos e atos que requisitam uma inteligência global, por meio de processamentos locais e comunicações interprocessos.

A IAD permite realizar tarefas melhor do que um especialista humano. Trabalha com diferentes módulos que podem manipular características de alto nível como intencionalidade, racionalidade, etc. Cada componente é denominado de agente.

ball1.gif (334 bytes) A IAD se divide em três grandes domínios:

Como exemplo de modelos de IAD pode-se citar a arquitetura Blackboard. Essa arquitetura utiliza um raciocínio inerentemente distribuído. A arquitetura blackboard é constituída por várias fontes de conhecimento (knowledge system, knowledges sources, agenda e o próprio blackboard).

ball1.gif (334 bytes) Vantagens dos sistemas de IAD:


AGENTE

ball1.gif (334 bytes) Noções Gerais 

A palavra agente pode ser definida de diferentes formas, de acordo com o enfoque e o objetivo que se quer atingir.

De uma forma geral, agente: "É uma entidade (física ou abstrata), capaz de agir sobre si mesma e sobre o meio, possuindo uma representação parcial desse meio, que tem capacidade de comunicar com outros agentes, e cujo comportamento é a conseqüência de suas observações, de seus conhecimentos e de suas interações com outros agentes" [Feber, 88].

Grande parte do estudo dos agentes é desenvolvido no campo da IA, mais particularmente na inteligência artificial distribuída (IAD). A IAD surgiu na década de 70 com os estudos feitos sobre a concorrência e a distribuição de tarefas, foi estruturada com o objetivo de agilizar e otimizar tarefas. Enquanto a IA utiliza sistemas de concepções centralizadas onde os agentes atuam sozinhos, a IAD utiliza sistemas de concepções descentralizadas ou distribuídas onde vários componentes trabalham conjuntamente dividindo tarefas.

A IAD possibilita a interação e cooperação entre especialistas de várias áreas (matemáticos, químicos, físicos, biólogos, engenheiros, etc.). Esse sistema é denominado de sistema multiagente.

O sistema multiagente foi baseado na teoria gestáltica, a qual possibilita o surgimento de uma Inteligência Emergente. Por isso, possui a vantagem de ser mais rápido e eficiente na realização de tarefas complexas.

ball1.gif (334 bytes) Características dos Agentes

Existem muitas características atribuídas aos agentes, dentre elas:

Um agente é considerado inteligente se é um ser cognitivo, racional, intencional e adaptável, que  sabe como agir diante de situações complexas e difíceis.

ball1.gif (334 bytes) Os agentes podem ser definidos também como:

1. Deliberativos ou cognitivos:

2. Reativos ou não deliberativos:

ball1.gif (334 bytes) Dificuldades dos sistemas multiagentes:


SISTEMAS BASEADOS EM CONHECIMENTO (KBS) 

 

São sistemas utilizados para implementar comportamentos inteligentes de especialistas humanos. O conhecimento do especialista deve ser coletado e interpretado pelo engenheiro do conhecimento para facilitar o entendimento e garantir uma boa modelagem do sistema.

O desenvolvimento dos sistemas baseados em conhecimento (SBC) necessitam passar pelas seguintes fases:

sbcdesen.jpg (21876 bytes)

A AC pode ser feita de duas formas: reproduzindo-se fielmente os conhecimentos coletados ou produzindo um modelo original a partir disso. O processo de AC apresenta a seguinte estrutura:

acdes.jpg (40177 bytes)

A partir de 1986 a aquisição do conhecimento passou a ser vista como uma atividade de modelagem, ou seja, define um modelo conceitual, a partir de uma fonte de conhecimento (especialista, documentos, etc.).

A  modelagem implica num processo de abstração do real, por meio da construção de um modelo conceitual. Modelo conceitual é um esquema criado para permitir a atividade de abstração e explicitação do conhecimento. Nessa etapa é necessário fazer uso das várias formas de representação do conhecimento.

ball1.gif (334 bytes) Formas de Extração do Conhecimento:

ball1.gif (334 bytes) Dificuldades da Aquisição do Conhecimento:


  ENGENHEIRO DO CONHECIMENTO  
 

ball1.gif (334 bytes) Noções Gerais

O engenheiro de conhecimento é o responsável pela aquisição do conhecimento (coleta, seleção, decomposição e modelagem) do especialista.

O processo de aquisição do conhecimento junto aos especialistas pode ser feito de várias maneiras. Em geral, o engenheiro do conhecimento entra em contato com um ou mais peritos (agentes do conhecimento), em uma ciência ou ramo particular da ciência, que lhe fornece o  conhecimento que será implementado para a resolução de um número determinado de problemas.

Em alguns casos, especialistas de diferentes áreas do conhecimento trabalham juntos para analisar diferentes aspectos de um mesmo problema ou para definir diferentes formas de resolução de problemas.

ball1.gif (334 bytes) Características necessárias ao engenheiro de conhecimento:

ball1.gif (334 bytes) Dificuldades do engenheiro do conhecimento: Uma das problemáticas que envolvem a função do engenheiro de conhecimento é que ele seleciona e coleta dados para realizar uma abstração estática de um mundo dinâmico, cujos problemas e soluções sempre se renovam.

ball1.gif (334 bytes) Observação:

Especialistas são pessoas reconhecidas por possuírem um considerável grau de conhecimento em determinada especialidade.

O especialista deve possuir um alto grau de especialização na sua área, ou seja, ser um perito altamente qualificado, conhecedor do seu potencial e dos seus limites. Além disso deve ter autoconfiança, determinação, versatilidade e uma grande capacidade de organização na resolução de problemas. 

O especilaista é quem detém o conhecimento, os conceitos, regras, os dados, as teorias, as questões e as possíveis soluções para o problema que se quer resolver. E o engenheiro do conhecimento é quem extrai o conhecimento do especialista e é responsável por sua formalização e estruturação.


FORMAS DE REPRESENTAÇÃO DO CONHECIMENTO  
 
 
O conhecimento coletado no processo de aquisição do conhecimento é denominado de base de conhecimento. Serve para estabelecer conceitos e relacioná-los aos fatos. Implica a manipulação e representação simbólica dos conhecimentos.

Existem várias maneiras de representar uma base de conhecimento, por exemplo:

  Regras de Produção

É a representação de um domínio específico do conhecimento na forma de um conjunto de regras (se...então...) baseadas na lógica. Essas regras formam a base do sistema. Constitui a técnica mais famosa utilizada pelos sistemas especialistas.

Por exemplo:
    Sentença (expressa informações sobre o mundo - fatos)  - Todo homem é racional.
    Regra:
        SE X é homem (premissa)
        ENTÃO X é racional (conclusão).

As premissas servem como parâmetro para mapear a memória de trabalho. Contém os antecedentes da conclusão, ou seja, as condições que permitem ao sistema chegar a determinados resultados.

A conclusão representa o resultado de um encadeamento lógico das premissas, pode representar também as possíveis saídas do sistema. Implica uma alteração ou adição de novos fatos à memória de trabalho.

A forma como as premissas e as conclusões se relacionam depende das estratégias de controle (encadeamento para frente, para trás e sistema híbrido).

Características das Regras de Produção:

Objetivo: Fazer com que a máquina seja capaz de realizar deduções a partir das regras que lhe foram previamente fornecidas (é uma das formas mais conhecidas de representação do conhecimento para sistemas de pequeno porte).

Um sistema baseado em regras de produção possui três partes constitutivas que são: memória de trabalho, memória de regras e motor de inferência.

Vantagens das Regras de Produção:

Desvantagens das Regras de Produção:

  Redes Semânticas

Origem: Surgiram (em 1968) com os estudos realizados por Quillian a respeito da memória associativa humana.

Conceito: "As redes semânticas são representações gráficas do conhecimento. Como uma árvore de decisão, elas consistem em nós que são representados por círculos, e arcos que são representados por linhas com setas. Os nós contém informações, e os arcos mostram a relação entre elas." [LEVINE, 88].

Utilização:

Base das Redes Semânticas: Primitivas de representação: noções de grafos (servem para representar objetos, conceitos e valores) e arcos (servem para representar associações entre  objetos e conceitos ou entre atributos e objetos).

Estruturação: Nas redes semânticas os conhecimentos são estruturados utilizando-se frames (nós) e ligações entre os frames (frame é um tipo de rede semântica).

Vantagens: Flexibilidade, inteligibilidade, maleabilidade, simplicidade e herança.

Mecanismos de Inferência: As redes semânticas utilizam dois mecanismos de inferência:  herança e filtragem. A herança serve para inferir propriedades "deflaut" dos elementos de uma classe, como por exemplo: filho, neto, sogro, etc., enquanto que a filtragem serve apenas para focar conceitos específicos.

Raciocínio: As redes semânticas utilizam dois raciocínios: propagação de ativação (busca encontrar um caminho entre dois nodos) e o mapeamento de estruturas (realiza consultas baseado em partes de grafos).

Dificuldades:

  Frames

Origem: Surgiu com os estudos de Minsky sobre a representação do conhecimento e o processo de observação visual, através da comparação entre as propriedades observadas nos objetos e os padrões estereotipados, previamente definidos na memória.

Conceito: São conjuntos de slots (campos) e de valores, cuja estrutura contém informações referentes a determinados objetos, as quais são armazenadas de forma hierárquica. Os frames podem ser criados a partir de uma coleção de frames (já existentes) conectados entre si. Isto se torna possível uma vez que um atributo de um frame pode ser outro frame.

De acordo com Elaine Rich e Kevin Knight: "Um frame é uma coleção de atributos, em geral chamados de escaninhos (slots), e valores a eles associados (e possivelmente restrições a estes valores) que descrevem alguma entidade do mundo." [RICH, 93].

Vantagens: Os frames são bem adaptados ao raciocínio humano, flexíveis e fáceis de usar, embora não tenham uma metodologia de implementação específica. Permitem a herança automática dos atributos e podem estruturar uma grande quantidade de conhecimentos.

Características:

Tipos de Frames:

Funcionalidades:

Dificuldades:


SISTEMAS ESPECIALISTAS

 

ball1.gif (334 bytes) Noções Gerais

Uma das aplicações que se destacam no campo da inteligência artificial é a construção dos sistemas especialistas (SE) e dos sistemas baseados em conhecimento (SBC).

Sistemas especialistas são sistemas desenvolvidos para conter em si o conhecimento de um ou mais especialistas, ou seja, são sistemas projetados para solucionar problemas e realizar tarefas simulando a tomada de decisão de especialistas em diferentes áreas.

Os SE são capazes de aprender, analisar, controlar, interpretar, aconselhar, consultar, monitorar, comunicar, instruir, classificar, diagnosticar, predizer, projetar, testar, etc. Além da   capacidade de aprender o SE pode melhorar seu desempenho, aprimorar seu raciocínio e aperfeiçoar suas decisões.

São estruturados para atender a uma aplicação restrita ou domínio limitado do conhecimento. Quanto mais restrito o domínio e mais conhecimento tiver o programa mais eficiente tende a ser o SE. Segundo Hubert Dreyfus: "O nosso sistema especializado médico 'MYCIN', por exemplo, é superior aos especialistas da Escola de Medicina da Universidade de Stanford" [PESSIS-PASTERNARK, 93].  

Os SE são constituídos por três componentes centrais: base de dados, conjunto de operadores e estratégia de controle.

Os SE só começaram a ser comercializados a partir de 1980 e conquistaram uma grande credibilidade e sucesso no meio industrial. Dentre os programas que utilizam a tecnologia dos SE pode-se citar o:

ball1.gif (334 bytes) Aplicações dos Sistemas Especialistas

As aplicações dos sistemas especialistas podem ser enquadradas em três grandes categorias: manufatura, finanças e serviços (educação, engenharia, meteorologia, medicina, militar,  telecomunicações, etc.).

ball1.gif (334 bytes) Vantagens da utilização dos SE:

Existem muitas vantagens na utilização dos SE, dentre elas:

ball1.gif (334 bytes) Shells ou Geradores dos SE

São programas que possuem ferramentas para facilitar a implementação do raciocínio, aquisição e representação do conhecimento. Objetiva facilitar a integração dos SE com outros tipos de programas.

Um shell de SE possui a vantagem de representar o conhecimento e o raciocínio de uma forma muito mais flexível e de possibilitar o desenvolvimento de novos sistemas especialistas, ou seja, novas aplicações em novos domínios. Isso é denominado de Aplicabilidade do Motor de Inferência.

Os shells suportam regras, frames e outros mecanismos de representação do conhecimento.

ball1.gif (334 bytes) Dificuldades na utilização dos SE

ball1.gif (334 bytes) Ferramentas do tipo Shell

ball1.gif (334 bytes) Formalismos dos SE


ball1.gif (334 bytes)   Sistema CASEY: Faz o diagnóstico de pacientes cardíacos baseado na consulta de arquivos de pacientes com o mesmo diagnóstico.

ball1.gif (334 bytes)   Sistema CHEF: Baseado na consulta de arquivos de receitas antigas, analisa e cria novas receitas culinárias.

   Raciocínio Estatístico

É utilizado em situações onde não é possível prever com segurança a verdade ou                      falsidade de determinados fatos, embora seja possível prever o grau de probabilidade de determinados resultados.

O raciocínio estatístico também é utilizado para determinar estatisticamente a freqüência de possíveis exceções na ocorrência dos fatos. Para modelar o raciocínio estatístico podem ser utilizados fatores de certeza, estatística bayesiana, etc.

ball1.gif (334 bytes)    Fatores de Certeza: Associa fatores de certeza à determinadas regras para prever a validade de uma conclusão com base nas evidências descritas pelo antecedente da regra.

ball1.gif (334 bytes)    Estatística Bayesiana: Utiliza a probabilidade condicional da ocorrência de um fato baseado nas evidências relevantes.

   Raciocínio Baseado em Modelos

Realiza a construção de modelos para representar o comportamento de objetos ou sistemas, de modo a diagnosticar seu comportamento e eventuais falhas.

   Raciocínio Não-Monotônico

Faz uso de axiomas e regras de inferência para permitir o raciocínio de conhecimentos incompletos.


REDES NEURAIS

ball4.gif (334 bytes) Noções Gerais

O cérebro humano é composto por cerca de 100 bilhões de neurônios, que são conectados entre si de maneira complexa por meio de sinapses. Essa complexa conectividade é responsável pelas características atribuídas à inteligência.

Com o desenvolvimento da Inteligência Artificial surgiu a idéia de representar por meio de determinados programas o funcionamento do processo de aprendizagem do cérebro humano. A tentativa de simular a rede neural do cérebro deu origem à chamada Rede Neural Artificial.

Os trabalhos sobre redes neurais se iniciaram na década de 40, na Universidade de Illinois, com o neurofisiologista McCulloch e o matemático Walter Pitts, cujas idéias foram publicadas no artigo A Logical Calculus of the Ideas Immanent in Nervous Activity (1943).

McCulloch e Pitts estabeleceram uma analogia entre o processo de comunicação das células nervosas vivas e o processo de comunicação por transmissão elétrica e propuseram a criação de neurônios formais. Em 1947 eles conseguiram demonstrar que era possível conectar os neurônios formais e formar uma rede capaz de executar funções complexas.

As redes neurais possuem diferentes denominações, dentre elas redes neuronais, modelos de redes neurais artificiais, modelos conectistas e sistemas neuromórficos.

Assim como o cérebro humano é composto de células biológicas, a rede neural possui um neurônio artificial semelhante, pois ainda não é possível copiar totalmente o sistema de processamento paralelo existente nas células biológicas.

Não existe por parte da neurocomputação a pretensão de imitar o cérebro humano, o seu objetivo é o aprendizado da máquina, baseado em modelos que possam ser implementados para desempenhar funções inerentes ao cérebro humano.

As pesquisas em redes neurais artificiais (RNA) tentaram simular o cérebro humano, principalmente a sua capacidade de aprender e se adaptar a eventuais mudanças. Portanto, as RNA têm como principal objetivo simular a capacidade de aprendizado e a capacidade de generalização do cérebro humano, podendo executar tarefas que os programas convencionais não conseguiam realizar, pois não tinham essa característica de aprendizagem e adaptabilidade.

O psicólogo Donald Hebb (1949) deu uma importante contribuição ao estudo das redes neurais ao elaborar uma teoria baseada no processo de aprendizagem que ocorre no cérebro humano, esta teoria serviu de base para a aprendizagem das redes neurais.

O processo de aprendizado é geralmente um processo interativo de adaptação aplicado aos parâmetros da rede (pesos e thresholds), onde os conhecimentos são armazenados após cada interação.

Em 1956, Nathaniel Rochester desenvolveu um modelo de rede neural artificial, no qual era simulada a interconexão de centenas de neurônios e um sistema para verificar o comportamento da rede diante dos estímulos externos.

No entanto, a rede que se tornou mais popular, foi a Rede Perceptron, criada por Frank Rosenblat (1957). Mas a credibilidade da Rede Perceprton não durou muito, isto porque, em 1969, Mavin Minsky junto com Seymour Papert publicaram o livro Perceptron, no qual fizeram severas críticas às redes neurais, argumentando que os Perceptrons apresentavam limitações em suas aplicações, não possuíam capacidade de aprendizado para resolver problemas simples e não possuíam adequada sustentação matemática.

A primeira rede capaz de imitar o cérebro humano utilizando processadores paralelos (ao invés de um único processador) surgiu com Widrow e Hoff, em 1959, com a estruturação da Rede ADALINE, (Adaptative Linear Element). Mais tarde Widrow e Hoff estruturaram uma nova rede denominada MADALINE (Many ADALINE).

Apesar de terem surgidos trabalhos significativos na década de 60 e 70, como os de Werbos, Anderson, Grossberg, as pesquisas com as redes neurais só voltaram a recuperar sua credibilidade (em 1982) com os trabalhos do físico e biólogo John Hopfield.

As redes neurais artificiais podem ser entendidas como conjuntos bem estruturados de unidades de processamentos, interligadas por canais de comunicação, cada qual tendo um determinado peso correspondente a um valor numérico. Consistem de várias unidades de processamento (neurônios artificiais) interconectadas entre si formando uma determinada disposição estrutural de camadas (entrada, intermediárias e saída) e conexões entre as camadas.

Atualmente existem dezenas de modelos de redes neurais estruturados para as mais diversas aplicações. Alguns dos modelos de RNA mais conhecidos são:

ball4.gif (334 bytes) Aplicações das Redes Neurais

Podemos encontrar diferentes algoritmos de aprendizado, entende-se por algoritmo de aprendizado um conjunto de regras bem definidas que são utilizadas para solucionar um determinado problema de aprendizado. Os algoritmos de aprendizado podem ser agrupados em quatro categorias:

ball4.gif (334 bytes) Quanto ao tipo de treinamento para aprendizado as redes apresentam:

ball4.gif (334 bytes) Características que definem uma rede neural artificial:

ball4.gif (334 bytes) Vantagens da Utilização das Redes Neurais Artificiais:

ball4.gif (334 bytes) Dificuldades das Redes Neurais:


LÓGICA
 

Aristóteles (384-322 a.C.) foi o primeiro estudioso a fazer uma representação do processo do pensamento, através da sistematização do raciocínio lógico. A lógica aristotélica permaneceu como Aristóteles a estruturou durante vários séculos até o surgimento das lógicas não clássicas no século XIX com A. De Morgan (1806-1871), Boole (1815-1864), G. Frege (1848-1925) e Bertrand Russell (1872-1970).

G. Leibniz (1646-1716), Saccheri (1667-1733) e J. H. Lambert (1728-1777) fizeram tentativas de matematizar a lógica, mas foi George Boole que estruturou a lógica matemática.

As idéias de Boole foram publicadas no livro Mathematical Analysis of Logic, no qual ele demostra que a lógica pode ser manipulada algebricamente e que os resultados das operações lógicas podem ser obtidos através da utilização de técnicas matemáticas. Essa obra deu suporte para a lógica matemática ou simbólica utilizada em alguns ramos da computação, eletricidade e eletrônica.

As idéias de Boole representaram um grande passo na ciência da computação, no sentido de auxiliar na simulação e implementação do processo do raciocínio na máquina. Segundo Boole: "O que nós temos que examinar são as leis de uma das mais importantes faculdades mentais. A matemática que temos que construir é a matemática do intelecto humano".

No século XX surgiram vários outros princípios da lógica, que auxiliaram a construção de programas de computador, como por exemplo a teoria da demonstração por refutação de Herbrand (1930), o princípio da resolução de Robinson (1965) e a SLD resolution de Kowalski (1971).


LÓGICA FUZZY

 

A lógica fuzzy ou lógica difusa foi estruturada em 1965 pelo Dr. Lofti A. Zadeh da Universidade da Califórnia para tratar e representar incertezas. A lógica difusa torna-se importante na medida em que o mundo em que vivemos não é constituído por fatos absolutamente verdadeiros ou falsos.

A lógica difusa permite representar valores de pertinência (grau de verdade) intermediários entre os valores de verdadeiro e falso da lógica clássica (bivalente).

A lógica difusa pode ser aplicada, por exemplo, na construção de sistemas especialistas para descrever coisas imprecisas como: altura (alto, baixo), velocidade (rápido, lento), tamanho (grande, médio, pequeno), quantidade (muito, razoável, pouco), idade (jovem, velho), etc.

Para que isso seja feito é necessário estabelecer parâmetros de pertinência e não pertinência pelos quais os diferentes graus de verdade podem ser atribuídos. Por exemplo:

ball1.gif (334 bytes) Exemplo 1:

Ao estabelecer o seguinte padrão:
Um homem que tiver 1,60 metros ou menos, não é considerado alto.
Um homem que tiver 1,80 metros ou mais é considerado alto.
E, em seguida, se fizermos a seguinte pergunta: João é alto?

A resposta deve ser: Se João tiver 1.60 metros ou menos, ele não é alto, já que o valor do grau de pertinência da resposta é 0 (zero), ou seja, não-pertinência. Mas se João tiver 1,80 ou mais, o mesmo é alto, já que o grau de certeza é 1, ou seja, pertinência.

Mas se João tiver uma altura entre 1,61 e 1,79 metros ele não pode ser considerado nem alto nem baixo, no entanto, pode ser estabelecido um grau de pertinência quanto a ser alto. Como os valores 0 e 1 representam as percentagens 0% e 100% é possível estabelecer o grau de pertinência em termos percentuais. Por exemplo: Se João tem 1,75 metros, por uma regra de três simples, pode-se afirmar que João é alto com um grau de certeza de 75% (ou 0,75).

ball1.gif (334 bytes) Exemplo 2:

Para a pergunta: Maria é gorda? A probalidade de erro é muito grande, levando-se em consideração apenas o peso.

Para aumentar o grau de certeza da resposta é necessário determinar vários parâmetros como altura, idade, sexo, etc., de modo que o programa tenha informações suficientes para analisar bem a resposta. Por exemplo:  Seria melhor perguntar: Maria é do sexo feminino, tem 28 anos, 1,68 de altura e pesa 85 quilos, ela pode ser considerada gorda?

Os exemplos acima são simples, mas existem exemplos complexos que levam em consideração diferentes fatores de certeza.

A lógica fuzzy objetiva fazer com que as decisões tomadas pela máquina se aproximem cada vez mais das decisões humanas, principalmente ao trabalhar com uma grande variedade de informações vagas e incertas, as quais podem ser traduzidas por expressões do tipo: a maioria, mais ou menos, talvez, etc. Antes do surgimento da lógica fuzzy essas informações não tinham como ser processadas.

A lógica tradicional se aplica somente às informações consideradas completamente
verdadeiras, cujo valor de verdade é igual a 1. Ou seu oposto, informações consideradas totalmente falsas, cujo valor de verdade é igual a 0, enquanto que a lógica difusa tem a vantagem de poder ser aplicada às informações que não são completamente verdadeiras ou falsas, podendo variar entre 0.0 e 1.0.

A lógica fuzzy pode ser aplicada nas seguintes áreas: